package com.basic.common.utils;

import net.sourceforge.pinyin4j.PinyinHelper;

/**
 * Description: pinyin转换工具类
 * @Author: xiaoJiu
 * @Date: 2024/09/14
 */

public class PinyinConverter {

    /**
     * 将中文字符串转换为大写拼音并替换空格为下划线
     * @param chineseStr
     * @return
     */
    public static String toPinyin(String chineseStr) {
        StringBuilder pinyin = new StringBuilder();

        // 将中文字符串逐字转换为拼音
        for (char c : chineseStr.toCharArray()) {
            // 获取单个汉字的拼音数组（多音字支持）
            String[] pinyins = PinyinHelper.toHanyuPinyinStringArray(c);
            if (pinyins != null && pinyins.length > 0) {
                // 只取第一个拼音
                pinyin.append(pinyins[0]);
            } else {
                // 如果不是汉字，直接添加
                pinyin.append(c);
            }
        }

        // 将拼音转换为大写并替换空格为下划线
        String pinyinStr = pinyin.toString().toUpperCase().replace(" ", "_");

        return pinyinStr;
    }
}
